Soru & Cevap

ContexMenuItemSelected position i nasıl elde edebilirim ?

19.07.2017 - 06:38
 public static final int MENU_Ara = Menu.FIRST + 1;
    OyunTextView oyunTextView;
    static final int AnketDegerlendirmesi = 1337;
    int selectedPosition;
    String[] afteractivitydialogitems;

    String[] dialogdegerleri;

    boolean[] dialogcheckeditems ;



    TextView sayılar;
    ListView liste ;


    ArrayList<String> kullanıcısayıdegerlistesi = new ArrayList<>();

    ArrayList<Integer> mUserselecteditems = new ArrayList<>();



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_ana_menu);
        liste = (ListView) findViewById(R.id.oyun);
        //Adapter im.
        oyunTextView = new OyunTextView();

        liste.setAdapter(oyunTextView);

        registerForContextMenu(liste);

        afteractivitydialogitems = getResources().getStringArray(R.array.anket);

        dialogcheckeditems = new boolean[afteractivitydialogitems.length];

        dialogdegerleri = getResources().getStringArray(R.array.anketdeğer);




  public boolean onContextItemSelected(MenuItem item) {
        AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();


        switch (item.getItemId()) {
            case MENU_Ara:
                Intent i = getIntent();
                final ArrayList<String> secilmis = i.getStringArrayListExtra("listem");

                Intent ara = new Intent(Intent.ACTION_CALL);
                ara.setData(Uri.parse("tel:" + secilmis.get(info.position).toString()));


            //   ara.setData(Uri.parse(kullanıcısayıdegerlistesi.get(info.position).toString()));


                startActivityForResult(ara, AnketDegerlendirmesi);
                selectedPosition = info.position;
                //nereye tıkladığının bilgisi.

//int secilen = sayı.nextInt(Integer.parseInt(secilmis.get(info.position)));

                return true;
        }


        return super.onContextItemSelected(item);
    }

 protected void onActivityResult(final int requestCode, int resultCode, final Intent data) {

        if (requestCode == AnketDegerlendirmesi){
final AlertDialog.Builder  mBuilder = new AlertDialog.Builder(AnaMenu.this);
            mBuilder.setTitle("Sosyal Alarm Değerlendirme Formu");
            mBuilder.setIcon(R.drawable.ic_build_black_24dp);
            mBuilder.setMultiChoiceItems(afteractivitydialogitems, dialogcheckeditems, new DialogInterface.OnMultiChoiceClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int position, boolean isChecked) {

                   

                    if (isChecked){
    mUserselecteditems.add(Integer.valueOf(dialogdegerleri[position]));
}
if (!isChecked) {
if (mUserselecteditems.contains(Integer.valueOf(dialogdegerleri[position]))){
    mUserselecteditems.remove(Integer.valueOf(dialogdegerleri[position]));
}
}
 }
            });


            mBuilder.setCancelable(false);
            mBuilder.setPositiveButton("Tamamdır.", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {


                    String items = "";
                  int toplamaislemi = 0;
                    for (int item:mUserselecteditems){
                        items += "-" + item + "\n";

             toplamaislemi = toplamaislemi + item;

kullanıcısayıdegerlistesi.remove(selectedPosition);
                  kullanıcısayıdegerlistesi.add(selectedPosition , String.valueOf(toplamaislemi));



                        oyunTextView.notifyDataSetChanged();

                    }


// unutma if (toplamaislemi<0 )

                    Toast.makeText(AnaMenu.this ,(String.valueOf(toplamaislemi))    ,Toast.LENGTH_LONG).show();
                }
            }).show();




        }


        super.onActivityResult(requestCode, resultCode, data);
    }

SelectedPosition ne zaman çağrılsa kendisini 0 a eşitliyor fakat ben bunu istemiyorum Menu itemi (ara) tıklanıldığındaki liste görselindeki durumunu istiyorum.Nasıl elde edebilirim ?

3 Görüntülenme

1 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

Profile picture for user m101
m101
14.12.2019 - 01:02

Click olduğunda bir fonksiyon tetikleyip global bir değişkende onu set edip öğrenebilirsin.